CC=g++
# LDFLAGS=
LIBS= -lfftw3 -lm
CFLAGS= -I./s2kit10

TAR=vse_main
SRC1=sampling
SRC2=display
SRC3=compare
SRC4=des_gen
SRC5=voxelization
SRC6=BoundingBox
SRC7=evaluate

HEADERS= $(SRC1).h $(SRC2).h $(SRC3).h $(SRC4).h \
	$(SRC5).h $(SRC6).h $(SRC7).h 

OBJS=$(TAR).o $(SRC1).o $(SRC2).o $(SRC3).o \
	$(SRC4).o $(SRC5).o $(SRC6).o $(SRC7).o 

SDOBJ = s2kit10/pmls.o s2kit10/cospmls.o s2kit10/seminaive.o \
	s2kit10/primitive.o s2kit10/makeweights.o \
	s2kit10/naive_synthesis.o s2kit10/FST_semi_memo.o

$(TAR): $(OBJS) $(SDOBJ) SETDIR 
	$(CC) $(OBJS) $(SDOBJ) -o $(TAR) $(LDFLAGS) $(LIBS) 

$(TAR).o: $(HEADERS) $(SRC4).h
$(SRC1).o: header.h
$(SRC2).o: header.h
$(SRC3).o: header.h
$(SRC4).o: $(SRC4).cpp $(SRC4).h
	$(CC) -c $(CFLAGS) $(SRC4).cpp
$(SRC5).o: header.h $(SRC7).h
$(SRC6).o: header.h
$(SRC7).o: header.h

clean:
	rm -rf *.o vse_main
erase:
	rm -rf ./data/*.dat ./out/*.dat points.obj query_result.txt \
	positive.txt prcurve.html

SETDIR:
	mkdir -p data out

# some lib set up
FST_semi_fly.o: primitive.h makeweights.h pmls.h cospmls.h naive_synthesis.h
FST_semi_fly.o: seminaive.h FST_semi_fly.h
FST_semi_memo.o: makeweights.h FST_semi_memo.h
FST_semi_memo.o: cospmls.h primitive.h naive_synthesis.h seminaive.h
cospmls.o: primitive.h pmls.h
pmls.o: primitive.h
seminaive.o: cospmls.h
